1. Field of the Invention
This invention relates generally to embedded controller software authentication, and more particularly to systems and methods for authentication of software associated with an embedded device on a host card.
2. Description of the Related Art
The use of personal computers has expanded remarkably in recent years. Modern personal computers are generally characterized by a flexible hardware architecture and a relatively open software architecture. The use of standardized hardware interfaces has permitted users to customize their personal computers to meet their particular hardware and software needs with greater ease than previously available. In consequence, a variety of input and output devices are available for most popular personal computers.
The open hardware interfaces increase the flexibility of the hardware since developers can more easily create programs using a common interface. For example, open hardware interfaces are often utilized for device controllers, which are used to access and control the various peripheral devices connected to a computer system. These controllers serve to coordinate and manage the data communication to and from the peripheral devices. Exemplary controllers include integrated drive electronics (IDE) controllers, small computer system interface (SCSI) controllers, and other similar chips that control peripheral devices.
Generally, controllers include a computer chip known as an application-specific integrated circuit (ASIC). ASICs are usually created for a specific purpose or application such as controlling SCSI devices, RAID arrays, or other similar devices. ASICs that manage SCSI devices are commonly known as SCSI chips. A SCSI controller generally includes a SCSI chip. By use of software device drivers, a host computer can instruct a SCSI chip to manage specific peripheral devices and control the data transfer between the peripheral device and the host computer. Often, controllers are included on host adapter cards as illustrated next with reference to FIG. 1.
FIG. 1 is a block diagram showing a motherboard having a host RAID card for managing peripheral devices. The motherboard includes a host central processing unit (CPU) 100, and a host RAID card 102 having a SCSI controller 104 in communication with a SCSI peripheral device 108, which in this example is a redundant array of independent disks (RAID). In addition, a memory device 106, such as an electronically erasable programmable read only memory (EEPROM) can be placed in communication with the SCSI controller 104 on the host RAID card 102.
In operation, the SCSI controller 104 on the host RAID card 102 manages the read and write operations to the RAID storage array 108. In addition, the SCSI controller 104 can obtain configuration information from the memory device 106, also located on the host RAID card 102. As mentioned above, the SCSI controller 104 uses a standardized open hardware interface that allows developers to create programs using a common interface, thus increasing the ease with which software is developed for the SCSI controller 104. Furthermore, the open interface architecture allows controller software to execute on a plurality of different controllers, manufactured by a plurality of different manufactures.
Unfortunately, the open interface architecture of the SCSI controller 104 also facilitates software piracy for software created for use with the controller 104. Moreover, although a SCSI controller is illustrated in FIG. 1, it should be noted that the potential for software piracy exist for all controllers having an open interface architecture. For example, since controller software can execute on a plurality of different controllers using the standardized interface, a host card manufacturer can copy software developed for controllers on other host cards, and use the software on their host cards. Thus, the pirating host card manufacturer avoids the cost and labor of developing the controller software, while the actual controller software developer is uncompensated. Even when memory device 106 is utilized to store particular configuration information, the pirating manufacturer can copy the contents of original memory device 106 onto their memory device, thus making their memory device function as though it was the original memory device 106.
In view of the foregoing, there is a need for systems and methods for authenticating embedded devices on host cards to ensure software is being executed on an appropriate device. In addition, the methods should preserve the industry open interface architecture.